{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
{\f23\froman\fcharset128\fprq1{\*\panose 00000000000000000000}MS Mincho{\*\falt ?? ??};}{\f28\froman\fcharset128\fprq1{\*\panose 00000000000000000000}@MS Mincho;}{\f33\froman\fcharset238\fprq2 Times New Roman CE;}
{\f34\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f36\froman\fcharset161\fprq2 Times New Roman Greek;}{\f37\froman\fcharset162\fprq2 Times New Roman Tur;}{\f38\froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\f39\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f40\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f49\fmodern\fcharset238\fprq1 Courier New CE;}{\f50\fmodern\fcharset204\fprq1 Courier New Cyr;}
{\f52\fmodern\fcharset161\fprq1 Courier New Greek;}{\f53\fmodern\fcharset162\fprq1 Courier New Tur;}{\f54\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f55\fmodern\fcharset178\fprq1 Courier New (Arabic);}
{\f56\fmodern\fcharset186\fprq1 Courier New Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{
\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \snext0 Normal;}{\*\cs10 \additive Default Paragraph Font;}{
\s15\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f2\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 \sbasedon0 \snext15 Plain Text;}}{\info
{\upr{\title +------------------------------------------------------------------------------+}
{\*\ud\uc0{\title {\uc1\u9484 +\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9516 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -}
{\uc1\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -}
{\uc1\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9472 -\u9488 +}}}}{\author Dave}{\operator Dave}
{\creatim\yr2000\mo11\dy7\hr19\min28}{\revtim\yr2000\mo11\dy7\hr19\min54}{\version4}{\edmins25}{\nofpages3}{\nofwords591}{\nofchars3369}{\nofcharsws4137}{\vern8247}}\paperw11906\paperh16838\margl1152\margr1152 
\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1152\dgvorigin1440\dghshow1\dgvshow1
\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule \fet0\sectd \linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl 
{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5
\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s15\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f2\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\dbch\af23 

\par \loch\af2\dbch\af23\hich\f2 \u9484\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9516\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472
\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d
\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d
\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9488\'2b
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2  Description \u9474\'a6\loch\f2 \hich\f2  Tiberian Sun Voxel Animation File Format                       \u9474\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9532\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472
\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d
\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d
\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2  Version   \hich\af2\dbch\af23\loch\f2 \hich\f2   \u9474\'a6\loch\f2 \hich\f2  DMZ personal revision 1                                        \u9474\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9532\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472
\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d
\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d
\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2  Date        \u9474\'a6\loch\f2 \hich\f2  7th November, 2000                                             \u9474\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9532\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472
\'2d\u9472\'2d\u9472\'2d\loch\af2\dbch\af23\hich\f2 \u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d
\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d
\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2  Author      \u9474\'a6\loch\f2 \hich\f2  DMZ              <dmz@freeuk.com>                              \u9474\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9492\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9524\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472
\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d
\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d
\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9496\'2b
\par 
\par \hich\af2\dbch\af23\loch\f2 File Structure
\par \hich\af2\dbch\af23\loch\f2 ==============
\par 
\par \hich\af2\dbch\af23\loch\f2 An HVA\hich\af2\dbch\af23\loch\f2  file consists of 3 section types, a main header, a section name description, and a section animation list:
\par 
\par \loch\af2\dbch\af23\hich\f2 \u9484\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9488\'2b
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2    MAIN HEADER    \u9474\'a6\loch\f2  fixed length; 24 bytes
\par \loch\af2\dbch\af23\hich\f2 \u9492\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9496\'2b
\par \loch\af2\dbch\af23\hich\f2 \u9484\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9488\'2b
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2  SECTION NAME 0   \u9474\'a6\loch\f2  fixed length; 16 by\hich\af2\dbch\af23\loch\f2 tes each
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2  SECTION NAME 1   \u9474\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \hich\af2\dbch\af23\loch\f2         ...
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2  SECTION NAME n   \u9474\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9492\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9496\'2b
\par \loch\af2\dbch\af23\hich\f2 \u9484\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9488\'2b
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2  SECTION 0 ANIM.  \u9474\'a6\loch\f2  variable length; multiples of 48 bytes each
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2  \hich\af2\dbch\af23\loch\f2 \hich\f2 SECTION 1 ANIM.  \u9474\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \hich\af2\dbch\af23\loch\f2         ...
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2  SECTION n ANIM.  \u9474\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9492\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9496\'2b
\par 
\par \hich\af2\dbch\af23\loch\f2 Each like numbered section name and animation belongs to the same section in the corresponding VXL file. The order of the sections is either\hich\af2\dbch\af23\loch\f2  linear, or is set in the VXL file.
\par 
\par \hich\af2\dbch\af23\loch\f2 All numbers within the file are stored in little endian (ie least significant
\par \hich\af2\dbch\af23\loch\f2 byte first) format. In the following descriptions, treat the C structures
\par \hich\af2\dbch\af23\loch\f2 presented as pseudocode \hich\f2 \endash \loch\f2  in practise, these structures would be pa\hich\af2\dbch\af23\loch\f2 dded with
\par \hich\af2\dbch\af23\loch\f2 whitespace by a compiler and would not bear a 1:1 relationship with the data.
\par \page \hich\af2\dbch\af23\loch\f2 Main Header
\par \hich\af2\dbch\af23\loch\f2 ===========
\par 
\par \hich\af2\dbch\af23\loch\f2 The main voxel animation header consists of a bare minimum of fixed data fields, laid out as below:
\par 
\par \loch\af2\dbch\af23\hich\f2 \u9484\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9488\'2b
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2      FILE PATH      \u9474\'a6\loch\f2  16 bytes; zero terminated string
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2     NUM. FRAMES     \u9474\'a6\loch\f2  4 bytes; long integer: number of voxel animation frames
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2    NUM. SECTIONS    \u9474\'a6\loch\f2  4 bytes; long integer: number\hich\af2\dbch\af23\loch\f2  of voxel sections
\par \loch\af2\dbch\af23\hich\f2 \u9492\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9496\'2b
\par 
\par \hich\af2\dbch\af23\loch\f2 That\hich\f2 \rquote \loch\f2 s it \hich\f2 \endash \loch\f2 
 very simple indeed. The number of sections gives the number of voxel sections, as in the corresponding VXL file. The number of animation frames gives the number of discreet animation frames for the vox\hich\af2\dbch\af23\loch\f2 el.
\par 
\par \hich\af2\dbch\af23\loch\f2 The file path seems to give the directory in which the original 3D Studio mesh for the voxel resided during game design. As far as we are concerned, this field is meaningless and can be ignored.
\par 
\par \hich\af2\dbch\af23\loch\f2 struct hva_main_header
\par \hich\af2\dbch\af23\loch\f2   \{
\par \hich\af2\dbch\af23\loch\f2     char filepath[16];     /\hich\af2\dbch\af23\loch\f2 * ASCIIZ string                      */
\par \hich\af2\dbch\af23\loch\f2     long n_frames;         /* Number of animation frames         */
\par \hich\af2\dbch\af23\loch\f2     long n_sections;       /* Number of voxel sections described */
\par \hich\af2\dbch\af23\loch\f2   \};
\par 
\par \hich\af2\dbch\af23\loch\f2 Section Name
\par \hich\af2\dbch\af23\loch\f2 ============
\par 
\par \hich\af2\dbch\af23\loch\f2 The section name is just that, the name of the \hich\af2\dbch\af23\loch\f2 voxel section, exactly as in the corresponding VXL file. There is one of these for each voxel section.
\par 
\par \loch\af2\dbch\af23\hich\f2 \u9484\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9488\'2b
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2     SECTION NAME    \u9474\'a6\loch\f2  16 bytes; zero terminated string: describes the section 
\par \loch\af2\dbch\af23\hich\f2 \u9492\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9496\'2b
\par 
\par \hich\af2\dbch\af23\loch\f2 char section_name[16]; /*\hich\af2\dbch\af23\loch\f2  ASCIIZ string - name of section                 */
\par 
\par \page 
\par \hich\af2\dbch\af23\loch\f2 Section Animation
\par \hich\af2\dbch\af23\loch\f2 =================
\par 
\par \hich\af2\dbch\af23\loch\f2 A section animation consists of a list of transformation matrices with the 4}{\super\dbch\af23 \hich\af2\dbch\af23\loch\f2 th}{\dbch\af23 \hich\af2\dbch\af23\loch\f2 
 row missing, just like the transformation matrix in the VXL file. One matrix exists f\hich\af2\dbch\af23\loch\f2 or each animation frame, and should be applied to the corresponding voxel section when the animation is on that frame:
\par 
\par \loch\af2\dbch\af23\hich\f2 \u9484\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9488\'2b
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2      MATRIX 0     \u9474\'a6\loch\f2  each 48\hich\af2\dbch\af23\loch\f2  bytes; (4 byte floating point 3\hich\af2\dbch\af23\loch\f2 *4\hich\af2\dbch\af23\loch\f2  array)
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2      MATRIX 1     \u9474\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \hich\af2\dbch\af23\loch\f2         ...
\par \loch\af2\dbch\af23\hich\f2 \u9500\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9508\'a6
\par \loch\af2\dbch\af23\hich\f2 \u9474\'a6\loch\f2 \hich\f2      MATRIX n     \u9474\'a6\hich\af2\dbch\af23\loch\f2  n_frames instances
\par \loch\af2\dbch\af23\hich\f2 \u9492\'2b\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9472\'2d\u9496\'2b
\par 
\par \hich\af2\dbch\af23\loch\f2 The\hich\af2\dbch\af23\loch\f2  missing\hich\af2\dbch\af23\loch\f2  4}{\super\dbch\af23 \hich\af2\dbch\af23\loch\f2 th}{\dbch\af23 \hich\af2\dbch\af23\loch\f2  \hich\af2\dbch\af23\loch\f2 row of each\hich\af2\dbch\af23\loch\f2 
 matrix should \hich\af2\dbch\af23\loch\f2 be taken to be (0,0,0,1)
\par 
\par \hich\af2\dbch\af23\loch\f2 n_frames instances of:-
\par 
\par \hich\af2\dbch\af23\loch\f2 float transform[3][4]; \hich\af2\dbch\af23\loch\f2 /* Transformation matrix, first 3 rows             */
\par 
\par 
\par 
\par 
\par }}